package com.itheima.d5_bigdecimal;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test2 {
    public static void main(String[] args) {
        // 目标：掌握BigDecimal进行精确运算的方案。
        double a = 0.1;
        double b = 0.2;
        BigDecimal dx = new BigDecimal("0.1");
        BigDecimal dy = new BigDecimal("0.2");
        BigDecimal d = new BigDecimal("-19");
        BigDecimal dz = new BigDecimal("6.18719");
        // 1、把浮点型数据封装成BigDecimal对象，再来参与运算。
        // a、public BigDecimal(double val) 得到的BigDecimal对象是无法精确计算浮点型数据的。 注意：不推荐使用这个，
        // b、public BigDecimal(String val)  得到的BigDecimal对象是可以精确计算浮点型数据的。 可以使用。
        // c、public static BigDecimal valueOf(double val): 通过这个静态方法得到的BigDecimal对象是可以精确运算的。是最好的方案。

        // 2、public BigDecimal add(BigDecimal augend): 加法

        // 3、public BigDecimal subtract(BigDecimal augend): 减法

        // 4、public BigDecimal multiply(BigDecimal augend): 乘法

        // 5、public BigDecimal divide(BigDecimal b): 除法

        // 6、public BigDecimal divide(另一个BigDecimal对象，精确几位，舍入模式) : 除法，可以设置精确几位。
        // 舍入模式可以使用枚举 : RoundingMode
        System.out.println();
        // 7、public double doubleValue() : 把BigDecimal对象又转换成double类型的数据。
        double v = dx.doubleValue();
        System.out.println(v);
            //求绝对值
        System.out.println(d.abs());
        //将浮点数转换为 BigDecimal对象
        BigDecimal bigDecimal = BigDecimal.valueOf(6.18);
        System.out.println("---\n"+bigDecimal);

    }
}
